package utility;

public abstract class DMLException extends Exception {

	private static final long serialVersionUID = 1L;
	public DMLException() 																{ super(); 					}
	public DMLException(String message) 												{ super(message); 			}	
	public DMLException(String message, Throwable cause) 								{ super(message, cause); 	}	
	public DMLException(Throwable cause) 												{ super(cause); 			}
	
	public static class DatabaseInconsistencyException extends DMLException {
		private static final long serialVersionUID = DMLException.serialVersionUID;
		public DatabaseInconsistencyException() 										{ super(); 					}
		public DatabaseInconsistencyException(String message) 							{ super(message); 			}	
		public DatabaseInconsistencyException(String message, Throwable cause) 			{ super(message, cause); 	}	
		public DatabaseInconsistencyException(Throwable cause) 							{ super(cause); 			}
	}
	
	public static class TableNotFoundException extends DMLException {
		private static final long serialVersionUID = DMLException.serialVersionUID;
		public TableNotFoundException() 												{ super(); 					}
		public TableNotFoundException(String message) 									{ super(message); 			}	
		public TableNotFoundException(String message, Throwable cause) 					{ super(message, cause); 	}	
		public TableNotFoundException(Throwable cause) 									{ super(cause); 			}
	}
	
	public static class ColumnNotFoundException extends DMLException {
		private static final long serialVersionUID = DMLException.serialVersionUID;
		public ColumnNotFoundException() 												{ super(); 					}
		public ColumnNotFoundException(String message) 									{ super(message); 			}	
		public ColumnNotFoundException(String message, Throwable cause) 				{ super(message, cause); 	}	
		public ColumnNotFoundException(Throwable cause) 								{ super(cause); 			}
	}
	
	public static class InsertValuesArraySizeException extends DMLException {
		private static final long serialVersionUID = DMLException.serialVersionUID;
		public InsertValuesArraySizeException() 										{ super(); 					}
		public InsertValuesArraySizeException(String message) 							{ super(message); 			}	
		public InsertValuesArraySizeException(String message, Throwable cause) 			{ super(message, cause); 	}	
		public InsertValuesArraySizeException(Throwable cause) 							{ super(cause); 			}
	}
	
	public static class OrderByClauseException extends DMLException {
		private static final long serialVersionUID = DMLException.serialVersionUID;
		public OrderByClauseException() 												{ super(); 					}
		public OrderByClauseException(String message) 									{ super(message); 			}	
		public OrderByClauseException(String message, Throwable cause) 					{ super(message, cause); 	}	
		public OrderByClauseException(Throwable cause) 									{ super(cause); 			}
	}
	
	public static class WhereClauseException extends DMLException {
		private static final long serialVersionUID = DMLException.serialVersionUID;
		public WhereClauseException() 													{ super(); 					}
		public WhereClauseException(String message) 									{ super(message); 			}	
		public WhereClauseException(String message, Throwable cause) 					{ super(message, cause); 	}	
		public WhereClauseException(Throwable cause) 									{ super(cause); 			}
	}
	
	public static class InvalidDatatypeException extends DMLException {
		private static final long serialVersionUID = DMLException.serialVersionUID;
		public InvalidDatatypeException() 												{ super(); 					}
		public InvalidDatatypeException(String message) 								{ super(message); 			}	
		public InvalidDatatypeException(String message, Throwable cause) 				{ super(message, cause); 	}	
		public InvalidDatatypeException(Throwable cause) 								{ super(cause); 			}
	}
	
	public static class InsertOperationCriticalFailureException extends DMLException {
		private static final long serialVersionUID = DMLException.serialVersionUID;
		public InsertOperationCriticalFailureException() 								{ super(); 					}
		public InsertOperationCriticalFailureException(String message) 					{ super(message); 			}	
		public InsertOperationCriticalFailureException(String message, Throwable cause) { super(message, cause); 	}	
		public InsertOperationCriticalFailureException(Throwable cause) 				{ super(cause); 			}
	}
	
	public static class KeyConstraintException extends DMLException {
		private static final long serialVersionUID = DMLException.serialVersionUID;
		public KeyConstraintException() 												{ super(); 					}
		public KeyConstraintException(String message) 									{ super(message); 			}	
		public KeyConstraintException(String message, Throwable cause) 					{ super(message, cause); 	}	
		public KeyConstraintException(Throwable cause) 									{ super(cause); 			}
	}
	
	public static class ForeignKeyConstraintException extends DMLException {
		private static final long serialVersionUID = DMLException.serialVersionUID;
		public ForeignKeyConstraintException() 											{ super(); 					}
		public ForeignKeyConstraintException(String message) 							{ super(message); 			}	
		public ForeignKeyConstraintException(String message, Throwable cause) 			{ super(message, cause); 	}	
		public ForeignKeyConstraintException(Throwable cause) 							{ super(cause); 			}
	}
}
